package com.jinzhi.sysxn.service;

import com.baomidou.mybatisplus.plugins.Page;


import com.jinzhi.common.base.CoreService;
import com.jinzhi.common.utils.Result;
import com.jinzhi.sys.domain.UserDO;
import com.jinzhi.sysxn.domain.UserExportRequest;
import com.jinzhi.sysxn.vo.UserXnExportVO;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.Serializable;
import java.util.List;

/**
 * @author hss
 * @version 1.0
 * @date 2023/12/5 15:30
 */
@Service
public interface UserXnService extends CoreService<UserDO> {

    /**
     * 查询用户类表
     * @param userDTO
     * @return
     */
    Page<UserDO> selectPage(UserDO userDTO, Page<UserDO> page);

    /**
     * admin删除用户（将status从1改为0）
     * @param id
     * @return
     */
    Result<String> remove(Long id);

    /**
     * admin重置密码
     * @param userVO
     * @return
     */
    int adminResetPwd(UserDO userVO);

    /**
     * 根据id查询用户
     * @param id
     * @return
     */
    UserDO selectById(Serializable id);

    /**
     * 管理员编辑用户
     * @param user
     * @return
     */
    Result<String> updateMobile(UserDO user);

    /**
     * 修改学号/工号
     * @param user
     * @return
     */
    Result<String> updateNumber(UserDO user);

    /**
     * admin新增一个用户
     * @param userXnDO
     * @return
     */
    Result<String> addUser(UserDO userXnDO);

    /**
     * 编辑用户
     * @param userXnDO
     * @return
     */
    Result<String> update(UserDO userXnDO);

    /**
     * 导出用户信息
     * @return
     */
    List<UserXnExportVO> downloadUserXn(UserExportRequest userExportRequest);

    /**
     * 导入用户
     * @return
     */
    Result<?> importExcel (MultipartFile file,Long userId);
}
